﻿#region summary
// Copyright (c)  YISH. All rights reserved.
// Licensed under the MIT License, See License.txt in the project root for license information.
#endregion

using NSQL.Expressions;

namespace NSQL.Statements
{
    public interface ISelectStatement : IDataManipulationStatement, IDataTableStatement
    {
        SelectElementCollection Elements { get;}
        TableSourceCollection TableSources { get; } 
        
        /// <summary>
        /// Gets or sets the predicate corresponding to the WHERE part of the SELECT expression.
        /// </summary>
        IPredicateExpression Predicate { get; set; }
        GroupCollection GroupClause { get; set; }
        SortingCollection SortingClause { get; set; }
        bool CanOptimized { get; }
    }
}